package main

import "fmt"

/*
替换所有的问号

给你一个仅包含小写英文字母和 '?' 字符的字符串 s
请你将所有的 '?' 转换为若干小写字母，使最终的字符串不包含任何 连续重复 的字符
注意：你不能修改非 '?' 字符
题目测试用例保证 除 '?' 字符 之外，不存在连续重复的字符
在完成所有转换（可能无需转换）后返回最终的字符串
如果有多个解决方案，请返回其中任何一个

示例 1：
输入：s = "?zs"
输出："azs"
解释：该示例共有25种解决方案，从"azs"到"yzs"都是符合题目要求的。只有"z"是无效的修改
 */
func modifyString(s string) string {
	chars := make([]byte, len(s))
	for i := 0; i < len(chars); i++ {
		if s[i] != '?' {
			chars[i] = s[i]
			continue
		}
		for j := byte('a'); j <= 'z'; j++ {
			if (i == 0 || j != chars[i-1]) && (i == len(chars)-1 || j != s[i+1]) {
				chars[i] = j
				break
			}
		}
	}
	return string(chars)
}


func main() {
	s := "as?d"
	fmt.Println(modifyString("as?d"))
	fmt.Printf("%T\n", s[0])
}
